package com.wf.controller;

import cn.hutool.core.lang.tree.Tree;
import com.wf.domain.SysPermission;
import com.wf.domain.SysRole;
import com.wf.dto.AssignPermDTO;
import com.wf.service.SysPermissionService;
import com.wf.web.base.BaseController;
import com.wf.web.domain.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 权限接口
 * 该控制器处理与权限相关的HTTP请求，提供权限列表、菜单等信息
 * @author mpk
 * @since 2024/10/6 11:31:19
 */
@RestController
@CrossOrigin
@RequestMapping("/permission")
public class PermissionController extends BaseController {

    @Autowired
    private SysPermissionService sysPermissionService;

    /**
     * 根据角色ID获取权限列表
     * @param roleId 角色ID
     * @return 返回该角色的所有权限列表
     */
    @GetMapping("permissionList/{roleId}")
    public Result permissionList(@PathVariable String roleId) {
        List<Tree<Integer>> permissionList = sysPermissionService.getPermissionList(roleId);

        return success(permissionList);
    }

    /**
     * 根据角色列表获取菜单
     * @param roles 角色列表
     * @return 返回角色拥有的菜单权限
     */
    @PostMapping("getMenus")
    public Result getMenus(@RequestBody List<SysRole> roles) {

        List<Tree<Integer>> menus = sysPermissionService.getMenus(roles);

        return success(menus);
    }

}
